1. Technical Field
The present invention relates to database systems, and, more specifically, to software frameworks that store and operate on data stored in a database.
2. Related Art
A database (or data container) comprises one or more files composed of records that store information together with a set of operations for creating/updating and accessing the information stored therein. Databases are used in a wide assortment of software applications. For example, enterprise applications (such as e-business applications, supply chain management applications, customer relationship management applications, decision support applications) access and operate on data organized and stored in one or more databases. In another example, the file system in modern operating systems (such as Microsoft Windows, MacOS and the Unix-based operating systems) utilize a directory database (e.g., folder database) to organize and store files. In yet another example, web browsers, e-mail applications and personal information management applications utilize a folder database to organize and store information, such as web page bookmarks/favorites, e-mail messages and contact information, respectively.
When a software application accesses and stores large amounts of data, a relational database management system (RDBMS) is typically used to minimize the storage requirements and the overhead in updating the data elements stored therein. A more detailed description of database systems may be found in C. J. Date, xe2x80x9cAn Introduction to Database Systems,xe2x80x9d Addison-Wesley, 7th Ed., 2000, herein incorporated by reference in its entirety.
The difficulty in using database systems is defining (and understanding) the organization of the data elements stored therein and the semantics of the relationships between such data elements. For example, in RDBMS systems, a logical schema (consisting of tables, columns and keys) defines the organization of the data elements (and the relationships therebetween) of the database. In such a database system, in order to create (and/or maintain) a database, a user must become familiar with tables, columns, and keys (and the rules and user interface related thereto) used to define the database schema, or hire an expert database designer to play this role. This may be a time-consuming process that delays development of the software application under development and/or may increase development/maintenance costs of such software.
Moreover, the semantics of the relationships between data elements of a database is information that is essential to efficiently and effectively designing and maintaining such a database. Yet, modern database systems fail to capture and record this information in a way useful to those who are in a position to understand the real-word meaning of this information.
U.S. Pat. No. 5,809,297 to Kroenke et al. discloses a system for creating a database schema using semantic objects (i.e., objects that include a plurality of attributes including an object linking attribute that defines a relationship between two or more semantic objects). In the system of Kroenke, a user creates (and updates) a view window of the attributes of objects to define the relationships between objects. This view window includes the attributes of an object intermingled with information describing the semantics of the relationship of the object with another object(s). Importantly, the intermingling of attributes of an object together with such semantic information fails to effectively convey the semantic information to the user.
Thus, there is a great need to provide a mechanism that enables a user to view (and define, update, store and query) the semantics of a relationship between objects in a manner that effectively conveys the semantics of such relationships, thereby enabling users to efficiently and effectively design and maintain databases and also understand the organization of data elements in such databases.
Accordingly, a prime object of the present invention is to provide improved method (and database system) enabling users to define, update, store, query, and view the semantics of a relationship between data objects in a manner that effectively conveys the semantics of such relationships.
It is another object to provide methods and apparatus (and database systems) that enable a user to define, update, store, query and view the semantics of a relationship between types of data objects in a manner that effectively conveys the semantics of such relationships.
It is another object of the present invention to provide users with the ability to specify arbitrary text strings to represent the semantics of the relationships between objects and object types.
It is another object to enable the text strings that represent the semantics of the relationships between objects and object types to be separate from (and indirectly coupled to) the objects/object types of a given relation to enable the text strings to characterize the semantics of multiple relationships (thus saving storage spaces) and to enable the text strings to characterize the semantics of relationships of objects in disparate systems (for example, two different databases).
It is a further object of the present invention to provide a view navigation mechanism, in conjunction with a database storing text representing the semantics of a relationship between data objects and object types, that interacts with a user to effectively convey to the user the relationships between data objects and data types stored therein.
It is a further object of the present invention to provide a query handler, operating in conjunction with a database storing text representing the semantics of a relationship between data objects and object types, that provides an efficient mechanism to query the organization of the data objects/object types stored therein (and the relationships therebetween) in a manner that is readily adaptable to client-server database systems or other distributed database systems.
These and other objects of the present invention will become apparent hereinafter.
Generally the present invention comprises a method (and corresponding database system) for storing information characterizing semantics of relations between a plurality of objects. The stored information includes: object data, corresponding to each given object of the plurality of objects, that represents attributes of the given object; and bi-directional modifier data, corresponding at least one first object and at least one second object, that represents first text characterizing semantics of a relationship of the at least one first object to the at least one second object, and that represents second text characterizing semantics of a relationship of the at least one second object to the at least one first object. Preferably, the bi-directional modifier data comprises arbitrary text strings defined by user input. The object data and bi-directional modifier data are stored in distinct records (e.g., tables). Preferably, the bi-directional modifier data is stored in a modifier table and linked to a relation between objects represented by entries in a relation table and relation object table. In another aspect of the present invention, the stored information includes object type data, corresponding to each given object type of the plurality of objects. The bi-directional modifier text is linked to a relation between at least one first object type and at least one second object type to represent first text characterizing semantics of a relationship of the at least one first object type to the at least one second object type, and represent second text characterizing semantics of a relationship of the at least one second object type to the at least one first object type. Preferably, the bi-directional modifier data is linked to a relation between object types by entries in a relation object type table.
The method (and database system) of the present invention may be used in a wide assortment of software applications, including enterprise applications (such as e-business applications, supply chain management applications, customer relationship management applications, decision support applications), the file system in operating systems, web browsers, e-mail applications and personal information management applications. Importantly, the method (and database system) provides an easy, user friendly and efficient mechanism to define, view and query the organization of the data elements (and the relationships-therebetween) stored and accessed in such software applications, in a manner that conveys the real-world meaning of such relationships.